import {
	HTTP_REQUEST_URL
} from '@/config/config.js'

// 创建请求函数
function request(url, data = {}, method = 'get') {
  return new Promise((resolve, reject) => { // 匿名函数
    uni.request({
      url: HTTP_REQUEST_URL+url,
      method: method,
      data: data
    })
    .then(response => {
      resolve(response.data)
    })
    .catch(error => {
      reject(error)
    })
  })
}

// 创建request.js文件 可以使用uniapp的uni.request函数替代axios的axios.create。
// const request = axios.create({
// const request = uni.request({
//   baseURL: HTTP_REQUEST_URL, // 设置基础URL 'https://api.example.com'
//   timeout: 5000 // 设置请求超时时间
// })

// // 添加请求拦截器
// request.interceptors.request.use(
//   config => {
//     // 在发送请求之前做些什么，例如添加token到请求头
//     const token = uni.getStorageSync('token')
//     if (token) {
//       config.headers.Authorization = `Bearer ${token}`
//     }
//     return config
//   },
//   error => {
//     // 对请求错误做些什么
//     return Promise.reject(error)
//   }
// )

// 添加响应拦截器
// request.interceptors.response.use(
//   response => {
//     // 对响应数据做点什么，例如检查返回的状态码是否为200
//     if (response.status === 200) {
//       return response.data
//     } else {
//       throw new Error('网络错误')
//     }
//   },
//   error => {
//     // 对响应错误做点什么，例如显示错误信息
//     console.log('请求失败', error)
//     return Promise.reject(error)
//   }
// )

// 导出request函数，使其可以在其他页面中被调用
export default request


// 引入axios库
// import axios from 'axios'
// 然后，在需要发送请求的页面中，我们可以通过以下方式来调用刚刚创建的request函数：
// import request from '@/utils/request.js'

// export default {
//   methods: {
//     getData() {
//       request('https://api.example.com/data', {}, 'get')
//         .then(data => {
//           console.log(data)
//         })
//         .catch(error => {
//           console.error(error)
//         })
//     }
//   }
// }

// 在uniapp中，我们通常使用Vue.js语法来编写代码，包括引入和使用第三方库。在这个示例中，
// 我们使用了ES6的import和export语法来引入axios库，并创建了一个request函数。然后，
// 我们通过export default语句将request函数导出，使其可以在其他页面中被调用。

// 在需要发送请求的页面中，我们可以通过import语句来导入request函数，
// 然后在methods对象中定义一个方法（例如getData），在这个方法中调用request函数来发送请求。

// 需要注意的是，由于uniapp是基于Vue.js的跨平台开发框架，因此其基本语法和用法与Vue.js相同。
// 如果你对Vue.js比较熟悉，那么你应该能够很容易地理解和使用这个示例。

// 我们创建了两个函数：get和post。get函数用于发送GET请求，它接收一个url参数和一个可选的data参数，
// 然后使用axios.get方法发送请求。post函数用于发送POST请求，它也接收一个url参数和一个可选的data参数，
// 然后使用axios.post方法发送请求。这两个函数都返回一个Promise对象，当请求成功时，Promise对象会被resolve；
// 当请求失败时，Promise对象会被reject。

// request.js
// import { request } from 'uni-app';

// class Request {
//   constructor() {
//     this.requestInstance = request;
//   }

//   get(url, params) {
//     return this.requestInstance({
//       url: url,
//       method: 'GET',
//       data: params
//     });
//   }

//   post(url, data) {
//     return this.requestInstance({
//       url: url,
//       method: 'POST',
//       data: data
//     });
//   }

//   put(url, data) {
//     return this.requestInstance({
//       url: url,
//       method: 'PUT',
//       data: data
//     });
//   }

//   delete(url, data) {
//     return this.requestInstance({
//       url: url,
//       method: 'DELETE',
//       data: data
//     });
//   }
// }

// export default new Request();

// 在其他文件中，可以通过以下方式使用封装好的Request类：
// import Request from './request.js';

// const api = new Request();
// api.get('/api/v1/users').then(response => {
//   console.log(response);
// }).catch(error => {
//   console.error(error);
// });


// 例如，假设你有一个名为getData的请求方法，你可以将其放在api/request.js文件中，然后在其他页面中使用以下代码导入并调用它：
// api/request.js
// export default {
//   getData: function(url, data = {}) {
//     return new Promise((resolve, reject) => {
//       axios.get(url, { params: data })
//         .then(response => {
//           resolve(response.data)
//         })
//         .catch(error => {
//           reject(error)
//         })
//     })
//   }
// }

// pages/index/index.vue
// <template>
//   <view>
//     <!-- 使用getData方法 -->
//     <button @click="getData">获取数据</button>
//   </view>
// </template>

// <script>
// import request from '@/api/request.js'

// export default {
//   methods: {
//     async getData() {
//       try {
//         const data = await request.getData('https://api.example.com/data')
//         console.log(data)
//       } catch (error) {
//         console.error(error)
//       }
//     }
//   }
// }
// </script>

// -----------------request.js--------------------------
// return new Promise((reslove, reject) => {
// 		if (uni.getStorageSync('locale')) {
// 			header['Cb-lang'] = uni.getStorageSync('locale')
// 		}
// 		uni.request({
// 			// url: Url + '/api/' + url,
// 			url: Url + url,
// 			method: method || 'GET',
// 			header: header,
// 			data: data || {},
// 			success: (res) => {
// 				if (noVerify)
// 					reslove(res.data, res);
// 				// else if (res.data.status == 200)
// 				else if (res.data.code == 0)
// 					reslove(res.data, res);
// 				else
// 					reject(res.data.msg || i18n.t(`系统错误`));
// 			},
// 			fail: (msg) => {
// 				let data = {
// 					mag: i18n.t(`请求失败`),
// 					status: 1 //1没网
// 				}
// 				// #ifdef APP-PLUS
// 				reject(data);
// 				// #endif
// 				// #ifndef APP-PLUS
// 				reject(i18n.t(`请求失败`));
// 				// #endif
// 			}
// 		})
// 	});
// export function handlePay(data) {
// 	return request.post("/pay/fuiou/wxPreCreate", data, {
// 		noAuth: true
// 	});
// }

// handleSubmit() {
// 	// 对用户输入的金额进行校验
	
// 	this.formData.clientType = this.clientType
// 	this.formData.code = this.code
// 	this.formData.auth_code = this.auth_code	
// 	this.formData.mstate = this.mstate
// 	handlePay(this.formData).then(res => {
// 		console.log("------------------------")
// 		console.log(res.data.reserved_transaction_id)
// 		let tradeNO = res.data.reserved_transaction_id;
// 		this.tradePay(tradeNO);
		
// 	}).catch(err => {
// 		console.log("fail222")
// 	})
// },

// 引入axios库
// import axios from 'axios'

// 创建请求函数
// function request(url, data = {}, method = 'get') {
//   return new Promise((resolve, reject) => {
//     axios({
//       url: url,
//       method: method,
//       data: data
//     })
//     .then(response => {
//       resolve(response.data)
//     })
//     .catch(error => {
//       reject(error)
//     })
//   })
// }

// // 导出request函数，使其可以在其他页面中被调用
// export default request


